#ifndef _ENTRYBLOCK_H_
#define _ENTRYBLOCK_H_

#include <QString>
#include <QHash>

class Translation;
class QXmlStreamWriter;

class EntryBlock
{
public:
	/// Constructor por defecto
	EntryBlock() {}

	/// Destructor
	~EntryBlock();

	/// Establece el nombre de la entrada
	void setName(const QString& name)
		{ _name = name; }

	/// Devuelve el nombre de la entrada
	QString getName() const
		{ return _name; }

	/// Añade una nueva traducción a la entrada
	void addTranslation(const QString& transName, Translation* translation)
		{ _translations.insert(transName, translation); }

	/// Devuelve una traducción concreta dado su nombre
	Translation* getTranslation(const QString& transName)
		{ return _translations.contains(transName) ? _translations.value(transName) : NULL; }

	/// Establece la nota de la entrada
	void setNote(const QString& note)
		{ _note = note; }

	/// Devuelve la nota de la entrada
	QString getNote() const
		{ return _note; }

	void dump(QXmlStreamWriter& writer);

private:
	QString _name; ///< Nombre de la entrada
	QHash<QString, Translation*> _translations; /// Listado de traducciones
	QString _note; ///< Nota relacionada con la entrada
};

#endif // _ENTRYBLOCK_H_

